// 封装的请求工具
// 优化1 :  添加 axios 的基准地址,
// 以后我们再请求 的时候,就不需要再添加基准地址了 直接写接口文档里的url即可
axios.defaults.baseURL = 'http://api-breakingnews-web.itheima.net'

// 优化2 : 请求拦截器  => 添加token
axios.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么
    console.log('请求拦截器拦截了', config)
    // 判断拦截的请求的url是不是 以 /my 开头
    if (config.url.startsWith('/my')) {
      config.headers.Authorization = localStorage.getItem('token')
    }

    return config
  },
  function (error) {
    // 对请求错误做些什么
    return Promise.reject(error)
  }
)

// 优化3 : 响应拦截器 => token失效
axios.interceptors.response.use(
  function (res) {
    // 对响应数据做点什么

    if (res.data.status === 1 && res.data.message === '身份认证失败！') {
      //1. token删除
      localStorage.removeItem('token')

      //2. 回头登录页
      // 子 : window.parent => 父
      // 父 : window.parent => window 自己
      window.parent.location.href = '/login.html'
    }

    return res
  },
  function (error) {
    // 对响应错误做点什么
    return Promise.reject(error)
  }
)

// 注册
function mg_register(data, callback) {
  axios.post('/api/reguser', data).then(res => {
    console.log('res:', res)

    if (res.data.status === 0) {
      callback && callback()
    }
  })
}

// 登录
function mg_login(data, callback) {
  axios.post('/api/login', data).then(res => {
    callback && callback(res)
  })
}

// 获取用户信息
function mg_mg_getUserInfo(callback) {
  axios.get('/my/userinfo').then(res => {
    callback && callback(res)
  })
  // axios
  //   .get('/my/userinfo', {
  //     headers: {
  //       Authorization: localStorage.getItem('token'),
  //     },
  //   })
  //   .then(res => {
  //     callback && callback(res)
  //   })
}

// 分类
function mg_getCategory(callback) {
  axios.get('/my/article/cates').then(res => {
    callback && callback(res)
  })
  // axios
  //   .get('/my/article/cates', {
  //     headers: {
  //       Authorization: localStorage.getItem('token'),
  //     },
  //   })
  //   .then(res => {
  //     callback && callback(res)
  //   })
}
